<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
  <head>
    <title>Logback Log Messages</title>
<style  type="text/css">
table { margin-left: 2em; margin-right: 2em; border-left: 2px solid #AAA; }
TR.even { background: #FFFFFF; }
TR.odd { background: #EAEAEA; }
TR.warn TD.Level, TR.error TD.Level, TR.fatal TD.Level {font-weight: bold; color: #FF4040 }
TD { padding-right: 1ex; padding-left: 1ex; border-right: 2px solid #AAA; }
TD.Time, TD.Date { text-align: right; font-family: courier, monospace; font-size: smaller; }
TD.Thread { text-align: left; }
TD.Level { text-align: right; }
TD.Logger { text-align: left; }
TR.header { background: #596ED5; color: #FFF; font-weight: bold; font-size: larger; }
TD.Exception { background: #A2AEE8; font-family: courier, monospace;}
</style>

  </head>
<body>
<hr/>
<p>Log session start time Tue Nov 04 00:00:00 CST 2025</p><p></p>

<table cellspacing="0">
<tr class="header">
<td class="Level">Level</td>
<td class="Date">Date</td>
<td class="Message">Message</td>
<td class="MethodOfCaller">MethodOfCaller</td>
<td class="FileOfCaller">FileOfCaller</td>
<td class="LineOfCaller">LineOfCaller</td>
</tr>


<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 00:00:00,004</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 00:00:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 00:00:00,007</td>
<td class="Message">开始执行银行余额查询定时任务</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">40</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 00:00:00,006</td>
<td class="Message">开始执行银行账户明细查询定时任务</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">96</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 00:00:00,214</td>
<td class="Message">银行余额查询定时任务执行完成</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">87</td>
</tr>

<tr class="error even">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 00:00:00,211</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 00:00:00,217</td>
<td class="Message">银行账户明细查询定时任务执行完成</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">213</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 12:09:11,281</td>
<td class="Message">开始执行银行账户明细查询定时任务</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">96</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 12:09:11,286</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 12:09:11</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 12:09:11,292</td>
<td class="Message">【消息统计】开始执行消息数量统计任务，当前时间：2025-11-04 12:09:11</td>
<td class="MethodOfCaller">statisticsMessageCount</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">100</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 12:09:11,317</td>
<td class="Message">【消息统计】消息数量统计任务执行完成</td>
<td class="MethodOfCaller">statisticsMessageCount</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">107</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 12:09:11,327</td>
<td class="Message">开始执行银行余额查询定时任务</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">40</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 12:09:11,799</td>
<td class="Message">银行余额查询定时任务执行完成</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">87</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 12:09:11,799</td>
<td class="Message">银行账户明细查询定时任务执行完成</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">213</td>
</tr>

<tr class="error even">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 12:09:11,841</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 12:09:11,905</td>
<td class="Message">计算利息任务执行完成</td>
<td class="MethodOfCaller">computeInterest</td>
<td class="FileOfCaller">HblxJob.java</td>
<td class="LineOfCaller">111</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 12:09:11,965</td>
<td class="Message">【投标已截止提醒】暂无投标截止时间在24小时前的采购计划</td>
<td class="MethodOfCaller">afBidDeadlineReminder</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">176</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 12:09:11,967</td>
<td class="Message">【投标即将截止提醒】开始执行投标截止提醒任务，当前时间：2025-11-04 12:09:11</td>
<td class="MethodOfCaller">beBidDeadlineReminder</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">153</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 12:30:00,024</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 12:30:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="error odd">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 12:30:00,152</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 13:00:00,034</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 13:00:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 13:00:00,028</td>
<td class="Message">开始执行银行账户明细查询定时任务</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">96</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 13:00:00,028</td>
<td class="Message">开始执行银行余额查询定时任务</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">40</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 13:00:00,257</td>
<td class="Message">银行账户明细查询定时任务执行完成</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">213</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 13:00:00,258</td>
<td class="Message">银行余额查询定时任务执行完成</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">87</td>
</tr>

<tr class="error odd">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 13:00:00,287</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 13:30:00,029</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 13:30:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="error odd">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 13:30:00,126</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 14:00:00,012</td>
<td class="Message">开始执行银行余额查询定时任务</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">40</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 14:00:00,013</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 14:00:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 14:00:00,012</td>
<td class="Message">开始执行银行账户明细查询定时任务</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">96</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 14:00:00,035</td>
<td class="Message">银行账户明细查询定时任务执行完成</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">213</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 14:00:00,050</td>
<td class="Message">银行余额查询定时任务执行完成</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">87</td>
</tr>

<tr class="error odd">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 14:00:00,055</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 14:30:00,014</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 14:30:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="error odd">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 14:30:00,090</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 15:00:00,009</td>
<td class="Message">开始执行银行账户明细查询定时任务</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">96</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 15:00:00,009</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 15:00:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 15:00:00,010</td>
<td class="Message">开始执行银行余额查询定时任务</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">40</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 15:00:00,026</td>
<td class="Message">银行账户明细查询定时任务执行完成</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">213</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 15:00:00,043</td>
<td class="Message">银行余额查询定时任务执行完成</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">87</td>
</tr>

<tr class="error odd">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 15:00:00,069</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 15:30:00,008</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 15:30:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="error odd">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 15:30:00,127</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 16:00:00,014</td>
<td class="Message">开始执行银行账户明细查询定时任务</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">96</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 16:00:00,015</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 16:00:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 16:00:00,014</td>
<td class="Message">开始执行银行余额查询定时任务</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">40</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 16:00:00,117</td>
<td class="Message">银行余额查询定时任务执行完成</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">87</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 16:00:00,118</td>
<td class="Message">银行账户明细查询定时任务执行完成</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">213</td>
</tr>

<tr class="error even">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 16:00:00,124</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 16:30:00,104</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 16:30:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="error even">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 16:30:00,193</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 17:00:00,027</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 17:00:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 17:00:00,021</td>
<td class="Message">开始执行银行余额查询定时任务</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">40</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 17:00:00,023</td>
<td class="Message">开始执行银行账户明细查询定时任务</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">96</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 17:00:00,119</td>
<td class="Message">银行账户明细查询定时任务执行完成</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">213</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 17:00:00,120</td>
<td class="Message">银行余额查询定时任务执行完成</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">87</td>
</tr>

<tr class="error even">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 17:00:00,150</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.GeneratedMethodAccessor463.invoke(Unknown Source)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 17:30:00,045</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 17:30:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="error even">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 17:30:02,641</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.GeneratedMethodAccessor463.invoke(Unknown Source)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 18:00:00,015</td>
<td class="Message">开始执行银行账户明细查询定时任务</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">96</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 18:00:00,015</td>
<td class="Message">开始执行银行余额查询定时任务</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">40</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 18:00:00,016</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 18:00:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 18:00:00,146</td>
<td class="Message">银行余额查询定时任务执行完成</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">87</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 18:00:00,145</td>
<td class="Message">银行账户明细查询定时任务执行完成</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">213</td>
</tr>

<tr class="error even">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 18:00:00,170</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.GeneratedMethodAccessor463.invoke(Unknown Source)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 18:30:00,010</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 18:30:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="error even">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 18:30:00,041</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.GeneratedMethodAccessor463.invoke(Unknown Source)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 19:00:00,012</td>
<td class="Message">开始执行银行余额查询定时任务</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">40</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 19:00:00,012</td>
<td class="Message">开始执行银行账户明细查询定时任务</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">96</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 19:00:00,013</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 19:00:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 19:00:00,033</td>
<td class="Message">银行余额查询定时任务执行完成</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">87</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 19:00:00,054</td>
<td class="Message">银行账户明细查询定时任务执行完成</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">213</td>
</tr>

<tr class="error even">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 19:00:00,080</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.GeneratedMethodAccessor463.invoke(Unknown Source)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 19:30:00,014</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 19:30:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="error even">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 19:30:00,055</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.GeneratedMethodAccessor463.invoke(Unknown Source)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 20:00:00,004</td>
<td class="Message">开始执行银行余额查询定时任务</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">40</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 20:00:00,004</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 20:00:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 20:00:00,004</td>
<td class="Message">开始执行银行账户明细查询定时任务</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">96</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 20:00:00,033</td>
<td class="Message">银行余额查询定时任务执行完成</td>
<td class="MethodOfCaller">queryBalance</td>
<td class="FileOfCaller">BankBalanceJob.java</td>
<td class="LineOfCaller">87</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 20:00:00,039</td>
<td class="Message">银行账户明细查询定时任务执行完成</td>
<td class="MethodOfCaller">queryAccountDetail</td>
<td class="FileOfCaller">BankDetailJob.java</td>
<td class="LineOfCaller">213</td>
</tr>

<tr class="error even">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 20:00:00,042</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.GeneratedMethodAccessor463.invoke(Unknown Source)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 20:30:00,025</td>
<td class="Message">【消息同步】开始执行未读消息同步任务，当前时间：2025-11-04 20:30:00</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">51</td>
</tr>

<tr class="error even">
<td class="Level">ERROR</td>
<td class="Date">2025-11-04 20:30:00,211</td>
<td class="Message">【消息同步】未读消息同步任务执行失败: element cannot be mapped to a null key</td>
<td class="MethodOfCaller">syncUnreadMessages</td>
<td class="FileOfCaller">MessageSyncTask.java</td>
<td class="LineOfCaller">89</td>
</tr>
<tr><td class="Exception" colspan="6">java.lang.NullPointerException: element cannot be mapped to a null key
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.Objects.requireNonNull(Objects.java:228)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.Collectors.lambda$groupingBy$45(Collectors.java:907)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.jeecg.modules.message.task.MessageSyncTask.syncUnreadMessages(MessageSyncTask.java:65)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.GeneratedMethodAccessor463.invoke(Unknown Source)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:498)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.FutureTask.run(FutureTask.java:266)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
<br />&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.Thread.run(Thread.java:748)
</td></tr>
<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 20:32:59,975</td>
<td class="Message">dynamic-datasource start closing ....</td>
<td class="MethodOfCaller">destroy</td>
<td class="FileOfCaller">DynamicRoutingDataSource.java</td>
<td class="LineOfCaller">217</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 20:33:00,048</td>
<td class="Message">{dataSource-1} closing ...</td>
<td class="MethodOfCaller">close</td>
<td class="FileOfCaller">DruidDataSource.java</td>
<td class="LineOfCaller">2029</td>
</tr>

<tr class="info odd">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 20:33:00,089</td>
<td class="Message">{dataSource-1} closed</td>
<td class="MethodOfCaller">close</td>
<td class="FileOfCaller">DruidDataSource.java</td>
<td class="LineOfCaller">2101</td>
</tr>

<tr class="info even">
<td class="Level">INFO</td>
<td class="Date">2025-11-04 20:33:00,089</td>
<td class="Message">dynamic-datasource all closed success,bye</td>
<td class="MethodOfCaller">destroy</td>
<td class="FileOfCaller">DynamicRoutingDataSource.java</td>
<td class="LineOfCaller">221</td>
</tr>
</table>
</body></html>